package realQuestion.mi;

import java.util.LinkedList;
import java.util.Scanner;

//  CKG TODO 2023/4/30: 合并两个有序数组
public class Test2 {

    public  int[] merge(int[] A,int[] B){
        for (int i = 0; i < B.length; i++) {
            for (int j = 0; j < A.length; j++) {
//                if (B[i]>A[j])

            }

        }

        return A;
    }



    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int n = sc.nextInt();
        LinkedList<Integer> listA = new LinkedList<>();
        LinkedList<Integer> listB = new LinkedList<>();
        for(int i = 0;i<m;i++){
            listA.add(sc.nextInt());
        }
        for(int i = 0;i<n;i++){
            listB.add(sc.nextInt());
        }
        int start = 0;//记录当前元素的插入位置，因为两个序列都是有序的，所以后插入的b元素，不可能在当前插入的b元素之前。
        for(int i = 0;i<listB.size();i++){
            int b = listB.get(i);//获得b列表的第一个元素
            for(int j = start;j<listA.size();j++){
//                //逐步插入b中元素
//                int a = listA.get(j);
//                if(b<=a){
//                    listA.add(j,b);
//                    start = j+1;
//                    break;
//                }
//                else {
//                    if(b>listA.get(listA.size()-1)){
//                        //如果大于末尾的数
//                        //直接添加至末尾
//                        listA.add(b);
//                        break ;
//                    }
//                    if(b<=listA.get(j+1)){
//                        listA.add(j+1,b);
//                        start = j+1;
//                        break;
//                    }else {
//                        continue;
//                    }
//                }
//                if (b>listA.get(j)){
//
//                    listA.add(j+1,b);
//                }
               int a=listA.get(j);
               //  CKG TODO 2023/4/30:  一种情况
               if (b<=a){
                   listA.add(j,b);
                   start=j+1;
                   break;
               }
               else {
                   //  CKG TODO 2023/4/30: 一种情况
                   if (b>=listA.get(listA.size())-1){
                       listA.add(listA.size(), b);
                       break;
                   }
                   //  CKG TODO 2023/4/30: 一种情况

                   if(b<=listA.get(j+1)){
                        listA.add(j+1,b);
                        start = j+1;
                        break;
                    }
                   else {
                        continue;
                    }
               }

            }
        }


        for(int i = 0;i<listA.size();i++)
            System.out.print(listA.get(i)+" ");
    }
}
